package com.xadmin.sys.rbac.mapper;

import com.xadmin.sys.common.utils.Page;
import com.xadmin.sys.rbac.pojo.Menu;
import com.xadmin.sys.rbac.pojo.Role;
import com.xadmin.sys.rbac.pojo.RoleAndMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author vic Ly
 */
@Mapper
public interface RoleMapper extends BaseMapper<Role> {
    /**
     * @Description 分页查询
     * @Param  page
     * @return  List<Role>
     */
    List<Role> getAllByPage(Page<Role> page);
    /**
     * @Description 查询总数
     * @Param  page
     * @return  int
     */
    int getCountByPage(Page<Role> page);
    /**
     * @Description 查询总数
     * @Param  page
     * @return  int
     */
    Role getByName(String roleName);
    /**
     * @Description 查询角色所拥有的导航菜单
     * @Param id
     * @return Menu
     */
    List<Menu> getMenuByRoleId(Integer id);
    /**
     * @Description 查询角色所拥有的权限菜单和按钮
     * @Param id
     * @return Menu
     */
    List<Menu> getMenuByRoleIds(Integer id);
    /**
     * @Description 为用户批量添加菜单
     * @Param idList
     * @return int
     */
    int addMenus(List<RoleAndMenu> idList);
    /**
     * @Description 删除角色所拥有的所有菜单
     * @Param id
     * @return int
     */
    int deleteMenus(Integer id);

}
